package com.bean.anno.validator;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class NoChineseAndSemicolonValidator implements ConstraintValidator<NoChineseAndSemicolon, String> {

    /**
     * 正则表达式说明：
     * ^：匹配字符串开始
     * [^\\u4e00-\\u9fa5;]：匹配“非中文且非分号”的字符（\\u4e00-\\u9fa5 是中文Unicode范围）
     * *：匹配0次或多次
     * $：匹配字符串结束
     * 整体含义：字符串中所有字符都不能是中文或分号
     */
    private static final String REGEX = "^[^\\u4e00-\\u9fa5:]*$";

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        // 若值为null或空字符串，默认通过（如需非空，需配合@NotBlank等注解）
        if (value == null || value.trim().isEmpty()) {
            return true;
        }
        // 校验是否匹配正则（非中文且不含分号）
        return value.matches(REGEX);
    }
}